home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
musik
/
dtl
/
dtlib.readme
< prev
next >
Wrap
Text File
|
1995-03-09
|
37KB
|
792 lines
Documentation for the DES-Tracker Library System Release 2.00
=============================================================
as of Dec. 18, 1993
Written by Darren Schebek
destracker.library, LScope, DTC, mJuke, and MODInfo are all
Designed and written by Darren Schebek
Copyright ©1992,1993 by Darren Schebek
All rights reserved
IMPORTANT NOTE:
All versions of destracker.library v3.0 and above are incompatible with
older versions, so any programs that use versions of the library older than
v3.0 that wish to use the version in this release will have to be recompiled.
I apologize for the inconvenience, but the library has now become much easier
to use and much more powerful as a result of the enhancements introduced with
the newer releases.
Also, DES-Tracker has been rigorously tested with all types of display
modes. DES-Tracker works fine under all display modes (to the best of my
knowledge) except for Euro 36 mode. For some reason that I've have been
unable to fathom, DES-Tracker will crash if used while with a Euro 36 display.
If anyone has an idea as to why this might happen, then by all means let me
know.
INTRODUCTION
============
Music lovers! Now you can enjoy the great sound of tracker music on your
Amiga with a minimum of fuss. DES-Tracker has been designed for low-memory
platforms (like mine :). The library is only 25K, the included jukebox
program that uses the library is only 3.5K, and the library only requires an
extra 2K in memory overhead (not including any loaded module, that is). So
you can be running the included jukebox program using a total of about 30K of
fast mem. Pretty slim.
Programmers! Now you can have the great sound of Tracker music in your
programs with a minimum of fuss and your program can still be user friendly
and elegant in nature! Now you can have more control over syncing program
events to music and have much more control over the music you play! Even
ARexx programmers can make full use of the library's powerful features and
ample status information!
This is the DES-Tracker library system. The library does all the work for
you and provides lots of helpful information about the song that it's playing
as well. This library system is NOT public domain. However, it is freely
distributable as long as it is distributed unmodified and in it's entirety,
which includes the following files:
DTL/DTLib.ReadMe This file that you're reading now.
DTL/ReadMe.Install How to install the library system.
DTL/History.TXT A revision history of DES-Tracker.
DTL/DTL0-Format.TXT Description of the DTL0 file format.
DTL/FAQ.TXT Frequently asked questions about DES-Tracker.
DTL/libs/destracker.library The DES-Tracker library itself - v3.0.
DTL/libs/req.library Brand new (!) req.library v2.7! WB2.04-compat.
DTL/c/DTC Lets you use the library from CLI - v2.0.
DTL/c/LScope A visual scope that runs in the B/G - v2.0.
DTL/c/LScope.info The .info file for the LScope program.
DTL/c/mJuke A VERY small jukebox program. v2.0.
DTL/c/MODInfo Displays information about a song module.
DTL/docs/LibFuncs.DOC Docs for the library functions.
DTL/docs/RexxFuncs.DOC Docs for the library's ARexx commands.
DTL/docs/Structures.DOC Docs for the custom library structures.
DTL/rexx/Jukebox.rexx A simple ARexx jukebox script example.
DTL/rexx/Play.rexx A simple ARexx "load and go" script example.
DTL/code/DTC.S Assembly source code for DTC program.
DTL/code/LScope.S Assembly source code for LScope program.
DTL/code/LScopePic.O Object file for linking with LScope.
DTL/code/mJuke.S Assembly source code for the mJuke program.
DTL/code/JukeScript Example script for use with mJuke program.
DTL/code/MODInfo.S Source code for the MODInfo program.
DTL/include/clib/dtlib_protos.h C prototype file
DTL/include/pragmas/dtlib_pragmas.h C pragmas file for SAS/C.
DTL/include/fd/dtlib.fd C function definition file.
DTL/include/libraries/dtlib.i The include file for assembly language.
DTL/include/libraries/dtlib.h The include file for C.
DTL/include/proto/dtlib.h The main include file for C.
PLEASE READ THE FOLLOWING CONDITIONS FOR USE OF THIS PRODUCT:
You can use this library to your heart's desire, but if you use it in a
commercial application, there is a fee. The fee is a complimentary copy of
the final program. :) It virtually goes without saying that I'm also
interested in receiving non-commercial applications that use DES-Tracker as
well.
Of course, a monetary donation to the "Help-Darren-Get-A-Computer-That's-
At-Least-PAL-Capable-And-Has-More-Than-One-Meg" fund would be greatly
appreciated. :)
If you pass this DES-Tracker package on to others (which is encouraged)
you must distribute the library package in its entirety (as previously
mentioned) and each file must remain pristine (do not modify any of the files.
Make copies for yourself and modify those instead).
If you wish to distribute this library package incompletely (i.e., missing
any files listed above) as *part of an application that uses it*, then you
have my permission to do so under the following conditions:
Condition #1: You must provide a paragraph, either in the accompanying
documentation or as part of the program's output, stating
the following:
"DES-Tracker and destracker.library Copyright (c)1992,1993 Darren Schebek"
Condition #2: You must mention that your application does not contain the
complete DES-Tracker package, and you should also include
a word or two suggesting that interested users should pick
up the complete DES-Tracker package. OK, well, it would be
nice if you could. :)
Please remember that you use the DES-Tracker library and included programs
at your own risk. I assume no responsibility for any damage, data-loss, etc.
that may be caused by DES-Tracker, either directly or indirectly. Also note,
however, that this release contains no known bugs (other than the Euro 36
display mode crash bug mentioned previously). However, DES-Tracker will cause
serial and parallel contention if it runs using either of the CIA B timer
interrupts. This contention is eliminated when DES-Tracker manages to acquire
a timer interrupt with the CIA A chip. The included DTC program will tell you
which CIA and which timer is being used by DES-Tracker. You can also examine
the library base structure to determine which CIA and timer is being used.
Here is a run-down of each file in this package:
DTL/DTLib.ReadMe
----------------
This is the text file that you are now reading.
DTL/ReadMe.Install
------------------
This text file simply mentions how to install the library system so that
you can proceed to use it.
DTL/History.TXT
---------------
This is a text file containing a revision history of the DES-Tracker
library package, including enhancements made for this release.
DTL/DTL0-Format.TXT
-------------------
This is a text file that describes the DES-Tracker v1.0 file format (also
known as the "DTL0" file format. This file format was created by me for
release 2.00 (library version 3.0) of DES-Tracker. It's use is completely
optional, but bear in mind that it's more efficient than Noisetracker,
Protracker, and Soundtracker file formats.
The reason I created this file format: I discovered a Protracker song
that, when converted into Soundtracker v2.6 format, couldn't be converted into
Soundtracker v2.6 format. Since DES-Tracker kept (note: past tense) songs in
memory in Soundtracker format, this was a bad thing. Now, DES-Tracker keeps
track of the song in memory in DES-Tracker v1.0 format. Consequently, I
thought I might as well support it as an actual file format. It's only really
useful if you have a huge Protracker song that you'd like to convert to
Soundtracker format (so you can knock about 30K off its size) but can't
because there would be too many unique patterns (Soundtracker can only handle
up to 255 unique patterns). The DES-Tracker v1.0 format can handle up to
65535 patterns, and it doesn't need a PSC0 construct, either.
DTL/FAQ.TXT
-----------
This is a text file containing frequently asked questions about
DES-Tracker. Answers are also included as a bonus. :)
DTL/libs/destracker.library
---------------------------
This is the actual library itself. The features of this library will be
discussed later on, and is the main focus of the "LibFuncs.DOC" and
"Structures.DOC" files. The library currently understands Noisetracker v2.0
format, Protracker v1.1a and up, Soundtracker v2.6 format, and DES-Tracker
v1.0 format, and can read and write in all of these formats (the S/T v2.6
format is much more efficient than Noisetracker or Protracker, and the
DES-Tracker v1.0 format is even more efficient than ST v2.6). I should also
mention that the library also supports the Protracker extended "E" commands.
DTL/libs/req.library
--------------------
This is the most recent version of Colin Fox's requester library (v2.7).
It includes bug fixes for WB2.04. The ARexx "Play.rexx" script uses it.
DTL/c/DTC
---------
Note: This version of DTC (v2.0) will only function with version 3.0+ of
destracker.library.
DTC is a small program that you can use from a CLI window to feed commands
to the library. This program is pure code, i.e., it can be made resident
using the "resident" command, or New WShell's "resi" command. This program is
just under 5700 bytes in size (quite small). Due to the nature of libraries -
they have a nasty tendency to be suddenly expunged whenever nobody is using
them - it is best to first run the LScope program before using DTC. That way,
LScope will keep the library open. DTC, when run, will open the library, give
it the command(s) you specify, and then exit, closing the library. If DTC is
the only user of the library, then, when DTC runs and finishes, the library is
closed and expungable, and will be expunged if the Amiga decides that it needs
the extra memory used by the library (or if you run DPaint, which nobody does
anymore now that Brilliance is available, except that the authors of
Brilliance STILL leave the default coordinates as 0,0 when they save a brush -
how completely inexcusable and irritating and... oops, I've strayed somewhat
off-topic. Sorry). With LScope running in the background, the library will
always remain open between calls to DTC.
To get a list of the commands that DTC supports, just run DTC from the
command line without any arguments.
DTC supports multiple commands in a single invocation. Each command
should be separated by a space character. For example, if you wanted to use
DTC to reset the library defaults, load a tune (called HamsterDance, for
instance) and then start the song playing, you could invoke DTC once for each
function, like so:
DTC rd (reset default playback parameters)
DTC lm HamsterDance (load the song file called "HamsterDance")
DTC bp
...Instead, you can just type this:
DTC rd lp HamsterDance (Reset defaults, then Load & Play "HamsterDance")
...which is much more economical.
See the History.TXT file for details on changes made to DTC for this
release.
DTL/c/LScope
------------
Note: This version of LScope will only function with destracker.library
v3.0 or higher (this release contains destracker.library v3.0). If it can't
find the right version of the library, or if there is insufficient memory
available for LScope to run, then LScope will abort and give you back your
command line prompt. It doesn't tell you anything like "ERROR: Insufficient
Memory" because it detaches from the command line and consequently no longer
has anywhere to send its output.
Lscope is a visual scope program example for the library system. You can
run LScope from the CLI by typing "lscope" at the CLI prompt, or you can run
it from a Workbench window by double-clicking on the LScope icon. This
program serves two purposes. It is a great example of what you can do with
the DES-Tracker library, and it's a useful tool for spying on the library to
see what it's doing at any given time. LScope runs in the background,
automatically giving you back your command-line prompt after you run it. The
display runs at VBlank speed with minimal use of CPU time (which you can vary
by altering LScope's task priority). It is only around 25K bytes in length,
and requires about 63K of memory total, including memory required for the
display. The LScope program is completely system friendly, allowing you to do
whatever you like (e.g., modeming, programming, etc) at the same time that it
is running. It took me all of two days to write it in assembly language, but
I've been making little changes to it here and there ever since. :)
This is version 2.0 of LScope, and it's very different from all previous
versions. See the History.TXT file for a list of the changes (not like they
aren't obvious by just looking at it or anything :).
DTL/c/LScope.info
-----------------
This is just the .info file for the LScope program so you can run LScope
from a Workbench window.
DTL/c/mJuke
-----------
Note: mJuke will only function with version 3.0 or higher of
destracker.library. This is version 2.0 of mJuke.
This program is for all you DES-Tracker users that don't have ARexx. :)
This is a *very* small command-line-based jukebox program that I've
written. It's under 4K in size. It can play all songs in a specified path,
and can also process scripts of songs to play (in the "code" directory there
is an example script called "JukeScript" that shows you how a script is set
up).
The mJuke program does not lock the library. This is to allow you to
invoke the DTC program to change playback volume (which the jukebox will then
use while it's playing), unload the current module (causes the jukebox to
proceed immediately to the next song in the list it intends to play, and other
commands (but there's not much point in using DTC to load a module while the
jukebox is playing). :)
If the jukebox cannot load a given song for some reason - e.g., couldn't
find the song file, not enough memory to load it, etc - then the jukebox will
tell you so, and then proceed to the next song in the list automatically.
You can abort the jukebox with CTRL-C, and pressing CTRL-F will skip the
current song and go right on to the next one. Note also that the source code
for this program is included in the "code" directory.
Please note that you shouldn't run mJuke more than once. Besides, why
would you go and do something like that? That would be evil.
DTL/c/MODInfo
-------------
This program is run from the CLI and will display all kinds of information
about a module. Try it! If you do not specify a file to examine, then it
will display info on any currently loaded module. Otherwise, it will use
DES-Tracker to load the mod, display info on it, and then unload the module
and exit.
MODInfo, as of this release, will tell you the calculated play time for
the song in question as it would be played by the mJuke program (mentioned
just above).
MODInfo is currently in use on the Wizard Online BBS so that users can get
all kinds of interesting information about a song (like play time, for
instance) before they download it. MODInfo detects and displays SampleTexts
and even those inane comments that people trash instrument names with (why
people do that, I just don't know, especially since SampleTexts can say so
much more).
This is version 2.00 of the MODInfo program.
DTL/docs/LibFuncs.DOC
---------------------
This text file contains documentation for each of the library's function
calls. Some might conjecture that this is a nifty file to have.
DTL/docs/RexxFuncs.DOC
----------------------
This text file contains documentation for each of the library's ARexx
function calls. There are about 50 of them, mostly because I haven't yet
implemented auto-stem variable creation. Perhaps in a future release...
DTL/docs/Structures.DOC
-----------------------
This text file contains documentation on the custom library structures
used by the DES-Tracker library, including the library base structure itself.
DTL/rexx/Jukebox.rexx
---------------------
A simple jukebox program written in ARexx. Plays all modules in the given
path in a random order. What more could you want out of life?
DTL/rexx/Play.rexx
------------------
Another simple ARexx program. This one just loads up the specified module
and starts it playing. Unlike the ARexx jukebox above, this program gives you
back your command line prompt right away. Requires req.library, which is
included with this release of DES-Tracker.
DTL/code/DTC.S
--------------
This is the assembly source code for the DTC program. It's fairly easy to
follow. Although I originally wrote DTC (and everything else in this package)
using Charlie Gibbs' A68K assembler, I have since switched to DevPac, since
it's faster and more powerful.
DTL/code/LScope.S
-----------------
This is the assembly source code for the LScope program. After assembling
it into an object file, you must link it with the LScopePic.O file, also
included here. If you want LScope to detach from the command line, then you
must also link with cback.o (not included in this package).
LScope.S is infested with comments. Really. Perhaps too many comments.
It's almost irritating. =u) This source code was created using DevPac. The
comments were created using coffee and cigarettes, and the headache was created
by afterwards going to bed at 4:30am.
The only parts that aren't really commented sufficiently are those dealing
with the oscilloscope displays. I just haven't had the time to go back and
comment it. The oscilloscope logic uses lots of unwound loop code, instanced
with macros, which is why LScope is now about 25K in size. This is not
terribly efficient for a CPU with an instruction cache, but hey, I don't have
an instruction cache. Rewind the loop code, if you like.
DTL/code/LScopePic.O
--------------------
This file is linked with LScope.O (created by assembling LScope.S) in case
you actually want to assemble the LScope.S file (God help you). :)
I didn't include the original IFF picture for a couple of reasons. One,
it would just add unnecessarily to the size of the DES-Tracker package (of
course, the ARexx jukebox program sort of falls into the same category. Oh
well :). Secondly, to create the object file, I stripped the IFF header from
the picture file and converted it into object file format using a custom
utility of mine. It would just get confusing if I were to include the program
etc etc. So I didn't. If you want the LScope picture in an IFF format,
you'll just have to use a screen grabber on it while it's running.
DTL/code/mJuke.S
----------------
This is the assembly language source code for the mJuke program. It is a
good example of using the library's event signalling capabilities. This code
does not need to be linked with any startup code, as it performs its own
command-line argument parsing (which is another reason why the executable is
less than 4K in size =u). This source code was created with DevPac, and
commented with glee.
DTL/code/JukeScript
-------------------
This is an example script file that is understood by the mJuke program.
Note that the mJuke program allows comments in the script file (prefixed with
a semicolon). You can create your own play scripts using this one as
something to go by.
DTL/code/MODInfo.S
------------------
This is the source code for the MODInfo program. I'm terribly sorry that
I didn't have time to clean up the source or finish commenting it (I had to
leave the country, but I'm back now and I guess I have no excuse for this
now). Anyway, it's pretty sloppy code and it's rather sparsely commented.
DTL/include/clib/dtlib_protos.h
-------------------------------
This is the prototypes file. It is only needed for applications written
in C.
DTL/include/pragmas/dtlib_pragmas.h
-----------------------------------
This is the pragmas file for use with SAS/C.
DTL/include/fd/dtlib.fd
-----------------------
This is the function definitions file used for creating pragmas. It is
only needed for applications written in C.
DTL/include/libraries/dtlib.i
-----------------------------
This is the include file for assembly language applications. If you're
writing an assembly language program that uses the DES-Tracker library, you
will need to include this file.
DTL/include/libraries/dtlib.h
-----------------------------
This is the C version of the above include file.
DTL/include/proto/dtlib.h
-------------------------
This is the file you include if you're writing a C application that uses
the DES-Tracker library. As well as defining the library base pointer
(DesTrackerBase), this file will also include dtlib_pragmas.h and
dtlib_protos.h for you. Users should be aware that they will still need to
include the standard "libraries.h" include file.
Features of destracker.library
==============================
Here is a brief list of the functions supported by the DES-Tracker library
and what they do (a more detailed explanation of these functions can be found
in both the LibFuncs.DOC and RexxFuncs.DOC file):
Function Name: What it does:
OwnPlayer Lock out other programs from using the library.
DisownPlayer Allow others programs to use the library again.
SetFilter Turn low-pass filter on/off (Amiga power light).
SetChannelEnable Selectively enable/disable specific sound channels.
SetStartPosition Set the position in a song at which to begin a play seq.
SetEndPosition Set the position in a song at which to end a play seq.
SetTemporalStart Set the start position of a play sequence based on time.
SetTemporalEnd Set the end position of a play sequence based on time.
SetTemporalPos Set the current position of a play sequence based on time.
SetIterations Set the number of times to play a play sequence.
PausePlaySeq Temporarily suspend an active play sequence.
ContinuePlaySeq Resume a play seq. from the point at which it was paused.
SetGlobalVolume Set the global volume that music will play at.
SetInstVolume Set the default volume of a specific instrument.
SetDefaultTempo Set default tempo for the beginning of a play sequence.
SetGlobalTempo Set the global tempo for a song to play at.
SetFineTempo Set the global fine tempo for a song to play at.
SetTimingMode Set internal player timing to PAL (50Hz) or NTSC (60Hz).
SetLoopIntent Set/clear flag for whether a song is meant to loop or not.
FadeGlobalVolume Fade the global volume to a specific volume.
SetVolumeFadeRate Set the speed at which volume fades transpire.
LoadModule Load a song module into memory.
UnloadModule Release a song module from memory.
BeginPlaySeq Begin playing the predefined play sequence.
VerifyModule Determine if a disk file is a recognizable module format.
SetModulePath Add/remove a search path from library's linked list of paths.
RetitleModule Provide a new name for a module.
ApplyGlobalTempo Permanently alter a module's global tempo.
SetCurPosition Set the current play position in a loaded module.
SaveModule Save a module back to disk in Soundtracker v2.6 format.
SetSaveFormat Set format for SaveModule to use (Soundtracker/Noisetracker).
SetAutoTiming Turn on/off auto timing detection (not available yet).
ResetDefaults Reset library parameters to their default values.
SetTempoInt Set tempo interpretation mode (BPM / Non-BPM).
AddStatusSignal Add a status-event signal bit to library's signal queue.
RemStatusSignal Remove a signal bit from library's signal queue.
StopPlaySeq Stop playing current play sequence, reset to start position.
InstallModule "Loads" a module that resides in memory rather than on disk.
CalcElapsedTime Calculates how long a song will take to play.
CalcVolFadeTime Calculates the time that a volume fade will take.
The above functions can be called from your own programs, regardless of
what language you program in (provided that the language allows you to make
calls to libraries, which is most likely). The exception is ARexx, but of
course, the DES-Tracker library has full ARexx support as well.
As well as the many powerful functions listed above, DES-Tracker's library
base structure contains *tons* of information regarding current play status
(e.g. which instruments are being used *right now*, what note in what octave
is currently playing in a given audio channel, etc). It also tells you all
sorts of things about the currently loaded module (its name, its size, what
format it was in when it was loaded, how many instruments, etc). It even
keeps track of all instruments used in the currently loaded module, including
the instrument names, default volumes, lengths, etc. Tons of stuff. Check
out the "Structures.DOC" file in the "docs" directory if you don't believe me.
:)
You open the library for use in the same way that you'd open the Dos
library or Intuition library (or any library, for that matter). When you open
the DES-Tracker library successfully, you get back a pointer to the
DES-Tracker library base structure. A pointer to the same instance of this
structure is passed to all who open this library, and its elements are READ
ONLY. You must never write to them. Never, never, ever.
The "PSC0" Construct
====================
"PSC0" essentially means "Playback Status Construct". Future versions of
this construct (should the need arise to create them) will have the name
"PSC1", "PSC2", etc, so if you are scanning a file looking for this construct
for your own purposes, you should only check for "PSC" and then check the
fourth character for a valid digit.
Whenever you tell the DES-Tracker library to save a song module back to
disk (using the SaveModule function, see LibFuncs.DOC), the library will also
append extra information about the song at the very end of the song file (it
is put at the very end so you can still load the song up into the Soundtracker
v2.6, Noisetracker v2.0, or Protracker editors). Note that the DES-Tracker
v1.0 ("DTL0") file format will not have a PSC0 construct appended to it simply
because it doesn't need one (that information is already an inherent part of
the "DTL0" file format. The PSC0 construct looks like this:
ULONG "PSC0" The PSC0 Identifier.
ULONG size Size of the data portion of the PSC0 construct.
UBYTE PBFlags Playback flags (see below)
BYTE FineTempo Fine tempo setting (-128..127)
UBYTE DefaultTempo Default tempo of the song (0..31).
UBYTE Iterations Default number of iterations for song.
The size field contains the size of the entire PSC0 construct less the
first two fields (i.e. "size" is currently 4).
The PBFlags field contains the following flags:
Bit 7: PF_LOOPINTENT Set to 1 if this song is supposed to loop at the
end (see Structures.DOC for an explanation of this
flag as well as the SetLoopIntent function in
LibFuncs.DOC).
Bit 6: PF_TIMINGMODE Set to 0 for 60Hz (NTSC), 1 for 50Hz (PAL) timing.
Bit 5: PF_TEMPOINT Set to 0 if song uses "BPM" (Beats Per Minute)
tempo interpretation. Set to 1 if song only uses
normal tempos in 1..255 range.
Bit 4: PF_NEWFINETEMPO Set to 1 if fine tempo setting in this PSC0
construct uses the new fine tempo system (as
established by this release (r2.00, lib v3.0).
Otherwise, fine tempo setting uses old fine tempo
system.
The FineTempo field contains the fine tempo setting at the time that the
song module was saved. Its range is -128..127. A value of 0 is the default.
Positive values cause an increase in global tempo. Negative values cause a
decrease in global tempo.
The DefaultTempo field contains the default tempo setting for when the
song first starts playing. This is useful for songs that don't have any tempo
commands in them (with songs like this, the ApplyGlobalTempo function won't
work, see LibFuncs.DOC). You can use the SetDefaultTempo function to set this
parameter prior to saving a module to disk.
The last field was unused in release 1.2 and earlier releases. It's
function now is to hold the default number of iterations for the song. This
is provided so that you can play a song from DTC and have it play a given
number of times automatically. A value of 0 here means iterate infinitely.
It might be worth noting that, with the introduction of the "Iterations"
field, the Loop Intent bit in the playback flags is somewhat useless and
obsolete (i.e., if Iterations is anything other than 1, then obviously the
song is meant to loop).
When you tell the library to save a module to disk, a PSC0 construct
automatically gets appended to the end of the song file (unless you are saving
in DES-Tracker v1.0 (DTL0) format, in which case a PSC0 construct is not
needed). The next time you load up the song, the library will detect the PSC0
construct, extract the information from it and automatically set the
respective parameters.
Please bear in mind that if you load a module into the Soundtracker,
Noisetracker or Protracker editors and the song has a PSC0 construct at the
end of it, the editor will throw away this information. So, if you then save
the song from the editor, the PSC0 construct will be lost.
WHEW!
=====
Having said all that, I hope you enjoy using this library system. I wrote
the entire thing (DTC, LScope, mJuke, MODInfo, the library itself) in 100%
assembly language using both Charlie Gibbs' a68k assembler and DevPac (I now
use DevPac). The assembly source code included in this package is meant to be
compiled under DevPac.
If you have any comments, criticisms, or suggestions (or just unbridled
praise, ha ha), please let me know and help me to make this library system
better and better. I'd also *really* like to see any programs you write that
use the DES-Tracker library (a deluge of scopes? :). You can reach me on
usenet or by snail mail (see end of this file). Have fun!
I'd also like to say that, if you're using DES-Tracker and you can find it
in the goodness of your heart, I'd really appreciate some kind of monetary
donation. I've spent an incredible amount of time designing, creating and
improving DES-Tracker. It'd be nice to get a donation or two. :). Is
anybody reading this paragraph? Hello...<tap> <tap> <tap>...is this thing on?
SPECIAL THANKS
==============
I just gotta thank Gary Bonham at Oxxi, Inc. for suggesting that being
able to know how long a song will take to play without actually having to play
it would be a nifty idea. After sweating over the time conversions,
fractional precision and other math-y things, it came out well. And it's a
totally cool feature. I know of no other player program or editor in
existence that can do this.
Thanks to Bruce Dawson (good friend, cool guy, and author of Mand-FXP and
Mand 2000) who pulled me from the brink of insanity with a single hypothesis
when my signalling code went mental on me. :) What a great guy it is that he
is.
And hey! I recently discovered how useful a playtester can be! =u) Many
thanks go to David Riley for pointing out an overwhelming number of bugs,
documentation flaws, and include file glitches. It appears that Dave is going
to keep me up to my armpits in work for some time to come. Do I thank him or
do I hit him upside the head? =) =) Just kidding. It's mostly because of Dave
that I got off my butt and started addressing some design issues that needed to
be addressed. This release of DES-Tracker is much more flexible and easier to
get information out of as a result. Thanks, Dave.
Special thanks must also go to David Knox who brought a bug to my
attention that occurred when DES-Tracker was used from within the Director II
program. I would not have found it for quite some time otherwise. In return,
I will give him a free plug. :) David is head of the "Ready Robot Club"
headquartered in Carmichael, California. He publishes a monthly disk of
educational games, stories and puzzles for kids from Kindergarten to Grade 6.
He's been doing it for two years now, and has been mentioned in several
magazines. If you would like information about the Club, his address is as
follows:
David Knox
P.O. Box 628
Carmichael, CA
95609-0628 U.S.A.
Thanks to Jason Johannson of Euphonix for creating the "Inherit The Stars"
song module. It showed me that it's possible for a module to exist that can't
be converted into Soundtracker format from Protracker format. It's because of
this one single song module that I had to redesign and rewrite all my load &
save code, and that the "DTL0" file format now exists. So, do I thank Jason?
Or do I hit him upside the head? :) :)
I feel I must also thank everybody who composes great Amiga tunes, as it
was the excellent sound capabilities of the Amiga (and all these excellent
tunes) that made me get an Amiga (I used to be an Atari ST owner, now it sits
in the corner holding open the MIDI port on the Roland 5500). :)
My favorite tunes have changed now. They are as follows:
Most U4IA tunes (1993 is incredible!)
Most Maruku Buranu tunes (TechMaru is still a killer mod!)
Several tunes from Star Control II (Especially the Spathi Theme :)
Beyond Music
SuncoastDreamer/SpaceDebris (I've seen it under both names)
Lizard King
Die Hard
Also many thanks to all those who prefer ProTracker over MED. MED bites.
And kudos to Ed Mackey (Ed-Player looks great, I love the buttons), but
I wish he wouldn't condone destroying instrument names in favor of author
comments (couldn't people at least use the unused instrument slots for that
kind of thing? Or better yet, use sampletexts. Hell, if my MODInfo program
can detect them, then so could Ed-Player).
Special thanks and greetings to all of the members of Megawatts:
Bosco, Lioth, Janne, Maruku, Reverb, RamChip, DanC, Idea, and Leviathan. Have
I forgotten anyone? Hope you all have a great Christmas and New Year. Greets
to SpaZm (hey man, how's things goin'?)
And a very special thanks to U4IA of MDMA. The guy's given us *so* many
incredible tunes. I applaud his efforts and encourage others to stretch the
limits of musical styles. Be great!
And I *still* don't know what the hell "Klisje Paa Klisje" means. :)
WHAT'S IN STORE
===============
- I'm still working on my IFF FORM TRKR specification and player code
(among other utilities in the works for it). It's all starting to come
together now, so I must concentrate solely on the IFF stuff and,
unfortunately, pay less attention to DES-Tracker. I'm still willing to
improve DES-Tracker, however, if someone will pay me to do it. :)
- Darren Schebek, Dec 18, 1993
(aka Gridlock of Megawatts)
You can write to me here: or contact me on usenet at:
Darren Schebek dschebek@outb.wimsey.bc.ca
5620 Sherwood Blvd.
Delta, B.C. or call Wizard Online (official support BBS):
CANADA
V4L-2C5 (604)322-3266 (2400 baud) or
(604)322-3232 (2400 baud) or
(604)322-3972 (14.4K baud)
(Sysop is Roger Earl)